Unity 关于TextMeshPro自动换行的问题 您所在的位置:网站首页 unity text 换行 Unity 关于TextMeshPro自动换行的问题

Unity 关于TextMeshPro自动换行的问题

2024-04-12 20:47| 来源: 网络整理| 查看: 265

先看问题:

问题展示:独立游戏交流群807432457

        我们可以看到,在汉字+数字或者英文字母的时候,如果当前行剩余宽度不能完整显示数字或英文部分,TextMeshProUGUI会自动换行。

前言:

    今天在群里有群友提出这个问题,我在帮他解答之后,顺便将解决方案写下并和大家分享,希望能帮到更多的朋友。

        这种问题我会给出两个解决方案仅供大家参考。如果有其他更合适的方法,也请大家在下方留言。

正文

方案一:

        使用富文本的方式解决这个问题。把不想换行的文本使用 包裹起来。

        独立游戏交流群号807432457

        效果如下

使用后的效果

        大体效果就实现了,但是这里有一个问题要注意一下,此时我们在文本中加入空格,可能会引起换行。

空格引起的换行

        对于这种情况,我建议要么别用空格,要么使用

            至于有的朋友说替换成'\u3000'行不行,得看你制作的文字资源是不是支持,有可能会出现□这种情况,具体的要亲自试一下。

方案二:

        修改TextMeshPro的代码。百度查询的时候发现有许多大佬提过这个方法,但是因为版本迭代,我没找到这是在哪....

        比如这篇:https://blog.csdn.net/qq_33205561/article/details/103888909

百度图

        这个我没找到。

        我这边演示的版本是V 2.1.4版本,给大家参考。

版本

                查找目录。

目录

选择Packages→TextMeshPro→Scripts→Runtime。

最后找到TMPro_UGUI_Private这个脚本,双击点进去。

找到这个位置

我是直接搜的 if (isNextFollowingCharacter == false)

将下图示意部分注释掉。第一部分就在搜索的if当中。第二部分稍微向上翻一下。

第一部分

第二部分在第一部分往上一点的isFirstWordOfLine = false;;

第二部分

修改后效果如下

效果图

        最后,我承认我啃不透那4600多行的代码,所以这么修改以后,看起来效果是对的。

        至于会不会有其他的问题,目前我没测出来。如果各位看官知道修改以后会导致什么问题,也欢迎在评论区留言,我及时改正。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有